#

| Chapter 52 What's on the Disc |

## 52.4 Quick Descriptions of What's on the Disc

All the packages included on the CD-ROM are discussed somewhere in the book, complete with an icon in the margin to let you know it's there. But here's a quick listing of what each program does and where the book talks about it.

If you don't have the disc or just want another way to get them, many of the programs and other files are available on the Internet or via email. There's a `*` next to the names of those files in the listings that follow. Article 52.7 tells how to get them online.

Many of the programs listed here are shell scripts. All shell scripts are theoretically portable from one platform to another; however, they might have dependencies on programs that either aren't installed on your system, or behave somewhat differently from what the programmer expected. So beware that you might have to tweak the shell scripts a little to make them work correctly on your system.

Also beware that some scripts written in awk, sed, or perl use `#!` syntax on the first line of the script, to tell your system what program to run. Not all versions of UNIX support this feature. If yours doesn't, you'll have to convert the script to a shell script. See articles 45.3 and 44.4 for more information.

.emacs_ml *

  The .emacs_ml file contains a listing of Mike's favorite Emacs commands. If you like them, put them in your own $HOME/.emacs file. Article 32.7.

.enter.csh *

  .enter.csh is an example of a C shell script you might want to run when your C shell enters a particular directory. It is meant to be used with an alias (which can be found in the csh_init file) and with a .exit.csh script. A sample .exit.csh script is also included on the disc. Article 14.14.

.enter.sh *

  .enter.sh is an example of a Bourne shell script you might want to run when your Bourne-type shell (including ksh and bash) enters a particular directory. It is meant to be used with a shell function (which can be found in the sh_init file) and with a .exit.sh script. A sample .exit.sh script is also included on the disc. Article 14.14.

.exit.csh *

  .exit.csh is an example of a shell script you might want to run when your C shell leaves a particular directory. It is meant to be used with an alias (which can be found in the csh_init file) and with a .enter.csh script. A sample .enter.csh script is also included on the disc. Article 14.14.

.exit.sh *

  .exit.sh is an example of a shell script you might want to run when your Bourne-type shell (including ksh and bash) leaves a particular directory. It is meant to be used with a shell function (which can be found in the sh_init file) and with a .enter.sh script. A sample .enter.sh script is also included on the disc. Article 14.14.

80cols *

  The 80cols file simply contains 80 digits on a single line. You can use this file to determine whether your screen is 80 columns wide, with:

  >     cat 80cols

  Article 42.6.

! *

  The ! command (pronounced bang) creates temporary files to be used with programs that require filenames in their command lines. For example, to diff two files after sorting them, you might do:

  >     diff `! sort file1` `! sort file2`

  Article 9.18.

addup *

  addup is a shell script that uses awk to add up the values in a specified column of its input. Article 49.7.

age_files *

  The age_files shell script reports the size of the files in a given directory by age. Article 16.25.

ascii *

  ascii is a shell script that searches a listing of the ASCII character set and returns the ASCII decimal value of a specified character. Article 51.3.

awf *

  awf (Amazingly Workable Formatter) is an nroff -man or nroff -ms clone written entirely in (old) awk. It is slow and has many restrictions, but does a decent job on most manual pages and simple -ms documents. It is also a text formatter that is simple enough to be tinkered with, for people who want to experiment. Article 43.17.

GNU bash, Version 1.14.6

  bash is the GNU Project's Bourne Again SHell, an interactive shell with Bourne shell syntax. It also includes interactive command-line editing, job control on architectures that support it, csh-like history features and brace expansion, and a slew of other stuff. Article 8.2.

behead *

  The behead shell script removes all lines in a file up to the first blank line. This effectively removes the header from files saved from mail or news (1.33). Article 35.5.

bitmaps *

  The Poskanzer Bitmap Collection is a collection of monochrome bitmaps, for use as background patterns, clip-art, etc. They are stored in X11 (1.31) bitmap format, and most of them are compressed. If you need them in some other format, use the netpbm package, which is also included on the Power Tools disc. Article 43.25.

bkedit *

  bkedit is a shell script for making a backup copy of a file before starting the vi editor on it. Article 44.11.

bsdtar

  bsdtar is very similar to tar, but can remap long filenames to unique 14-character filenames on systems that have a 14-character filename limit. bsdtar can only read archives, it cannot create archives. Article 52.8.

bsplit

  bsplit enables you to split binary files into manageable pieces. Users who are familiar with split will have no problem with bsplit, as the usage of bsplit is exactly like the split program. Article 35.9.

cal_today *

  cal_today is a simple shell script that runs cal and marks today's date. Article 48.7.

calen

  calen generates a calendar for a whole year or for a certain range of months within a year in 132 columns. Article 48.8.

catsaway *

  The catsaway shell script is included here as an example of using a loop to repeat a command until it fails. Article 44.10.

center *

  center is an awk script that centers each line of a file. Article 35.8.

cgrep *

  cgrep is a context-grep Perl script for showing the given string with several lines of surrounding text. Article 27.13.

cgrep.sed *

  cgrep.sed is a context-grep sed script for showing the given string with several lines of surrounding text. It can also match a pattern that's spread across several lines. Articles 27.11, 34.17.

checksed *

  The checksed shell script runs the sed commands in a file called sedscr on the specified files, showing the edits with diff and a pager program. Article 34.3.

chmod_edit *

  The chmod_edit shell script adds write permission to a file, places you in your favorite editor, and then removes write permission again. Article 22.9.

chunksort *

  The chunksort script sorts multiline records that are separated by blank lines. Article 36.7.

cleanup *

  cleanup is an example of a shell script to be run by cron. By combining multiple find conditions, the find command is run only once instead of multiple times. Article 23.22.

cleanup.sed *

  cleanup.sed is a sed script to be run on troff input files. It converts double quotes to "curly" quotes, two dashes to em-dashes, and places a no-space character before constant-width font changes. It should be called with sed -f cleanup.sed. Article 43.21.

Clear *

  The Clear shell script can be used to execute VT100 escape sequences. It is also linked to the names NOG (to cancel an alternate character set); Graphics (to enable graphics mode); C132 (to enable 132-column mode); C80 (to enable 80-column mode); Revvid (to enable reverse video); Normal (to re-enable normal video); ToStatus (to write a message to the terminal status line); and ClrStatus (to clear the status line). Article 41.9.

cls *

  cls is a compressed directory lister that can list directories in nice columns and indicate "long" names that have been truncated. It is also linked to the names clf, cls2, and clf2. Article 16.6.

cols *

  The cols shell script displays output in columns. It is also linked to the c2, c3, c4, c5, c6, c7, and c8 commands, to force it to display the respective number of columns. Article 35.16.

count.it *

  count.it reports the difference in word length between two files. Article 29.6.

count_types *

  count_types is a shell script that reports the number of files of each type, as reported by the file command. Article 16.24.

cpmod

  cpmod allows you to copy modes, ownerships, and times from one file to others, without affecting the data. Article 22.16.

crontab *

  The crontab shell script provides interactive editing of your crontab entries. This script is meant for systems that do not already provide interactive crontab file editing. Article 40.15.

crush *

  crush is a sed script that removes blank lines from text and sends the result to standard output. Article 25.11.

csh_init *

  The csh_init file is a collection of C shell commands and alias definitions that are shown throughout the book. Most of these are also available as Bourne-type shell functions in the sh_init file.

  In its distribution form, each set of commands is commented out and needs to be explicitly uncommented before you can use them; this is because many of the definitions override or conflict with one another. You can copy or source (44.23) the file into your shell setup file (2.2), and then enable the definitions that you want. Articles 2.15, 7.5, 7.6, 7.8, 7.11, 10.7, 10.8, 14.9, 14.14, 15.5, 16.26, 17.23, 21.14, 22.2, 22.9, 25.17, 29.8, 30.20, 43.8, 47.5, and 50.8.

csh_logout *

  The csh_logout file contains a set of commands for removing temporary files. C shell users can input these commands into their ~/.logout file. Article 21.3.

csplit

  The csplit program splits a file according to context. csplit is part of the textutils package. Article 35.10.

cut+paste

  cut and paste are public domain versions of AT&T's cut and paste commands. They are part of the GNU textutils package. Articles 35.14 and 35.18.

cvtbase

  cvtbase is a program for converting from one base to another. Supported bases are decimal, hexadecimal, octal, and binary. Article 49.5.

del *

  del is a shell script that prompts you for the removal of the specified files. Unlike rm -i, del prompts you only once for all files when there are more than three to remove. Article 23.6.

delete

  The delete program is a replacement for rm that allows files to be recovered later on. Instead of actually deleting files, delete marks them for deletion by adding a `.#` prefix. To recover the file, use undelete. To delete the files for real, use expunge or purge. To list all the files in the current directory that are marked for deletion, use the lsdel command. Article 23.9.

GNU diff, diff3, sdiff, and cmp Utilities

  The GNU versions of diff, diff3, sdiff, and cmp provide all the features of BSD's versions, but with some additional features. Articles 28.1, 28.2, 28.4, and 28.11.

dir_path *

  dir_path is a shell script that shows all directories with the same name. Article 16.21.

dirtop *

  The dirtop shell script uses VT100 escape sequences to make an ls directory listing that stays at the top of the window while you work. Article 21.10.

doublespace *

  doublespace is a sed script that double-spaces text and sends the result to standard output. Article 25.12.

ediff

  ediff is a program that translates diff (28.1) output into English. Article 28.8.

elookfor *

  The elookfor script is similar to the lookfor script, but faster. It finds all files in the given directory tree that contain the given string(s), using egrep. Article 17.21.

GNU emacs, Version 19.3.1

  GNU emacs is the GNU incarnation of the advanced, self-documenting, customizable, extensible real-time display editor Emacs. Chapter 32, GNU Emacs.

GNU expand

  GNU expand converts TAB characters into the corresponding number of spaces. expand is part of the textutils package. Article 41.4.

Expect, Version 5.22

  Expect is a program to control interactive applications, such as telnet and passwd, that prompt you to type something at the prompt. You can write simple Expect scripts to automate these interactions. Then the Expect script can run the "interactive" program non-interactively. Expect is part of the Tcl/tk package. Article 9.26.

exrc *

  The exrc file is a collection of vi and ex commands that are shown throughout the book. In its distribution form, each set of commands is commented out and needs to be explicitly uncommented before you can use them; this is because many of the definitions override or conflict with one another. You can copy this file into your .exrc file (4.9), and then enable the definitions that you want. Articles 30.23, 30.32, 31.5, 31.9, 31.12, 31.13, and 31.16.

fgrep, Version 1.1

  Although maligned for its slowness, fgrep has several features that make it worth installing. This is one of the fastest fgreps that we've been able to find. Article 27.6.

GNU File Management Utilities (fileutils), Version 3.13

  The GNU file utilities have significant advantages over their standard UNIX counterparts, such as greater speed, additional options, and fewer arbitrary limits. Programs included are: chmod, chgrp, chown, cp, dd, df, du, install, ln, ls, mkdir, mkfifo, mknod, mv, rm, rmdir, and touch. Most of these programs are covered throughout the book.

GNU find, Version 4.1

  GNU find has several enhancements over the standard find command found on most systems. Among other things, it has the option to measure times from the beginning of today rather than from 24 hours ago, and it has user-settable maximum search depth. Articles 17.1 and 17.23.

  find is also distributed with the GNU xargs program, which is used to execute a command with many arguments. Its -0 option works with GNU find to avoid problems with the standard xargs. Articles 9.21 and 9.22.

  Finally, the package includes the GNU locate program, which lists files in a database that match a pattern (similar to the "fast find" on many systems). Article 17.18.

findcmd *

  findcmd searches your path and prints any program's filename that contains the given substring. Article 16.10.

findtext *

  The findtext shell script prints the names of specified files that are text files (i.e., human-readable). Article 16.26.

flip *

  flip is a Perl script that reverses the text in a given file line-by-line. That is, the first line in the file switches position with the last, the second line in the file switches with the next-to-last, and so on. Article 25.19.

GNU fmt

  fmt neatens text into paragraphs that are (by default) no longer than 72 characters. This GNU version has several other formatting features. Article 35.2.

fmt.sh *

  fmt.sh is a shell script that uses sed and nroff to simulate the behavior of the fmt command. It is meant for systems that are not distributed with fmt already installed. Article 35.3.

formprog *

  formprog is a shell script for filling in forms. It looks for a template file (argument 1) and prompts the user for information, placing the completed form into an output file (argument 2). Article 45.22.

ftpfile *

  ftpfile is a shell script for anonymously ftp'ing a file. It is included on the disc as an example of a here document. Article 8.18.

GNU awk (gawk), Version 3.0.3

  gawk is a version of awk from the Free Software Foundation. It has many more features than the original awk. Article 33.12.

getmac *

  getmac is a shell script for printing a troff macro definition in the specified macro package. Article 43.20.

getopt

  getopt is a public-domain implementation of the System V getopt program. Not to be confused with the library routine, this program helps scripts parse their options/flags/arguments. Article 44.18.

glimpse and agrep

  glimpse is an indexing and query system that lets you search huge amounts of text (for example, all of your files) very quickly. Part of the glimpse package is agrep, a standalone utility for fast text searching. agrep is similar to the other members of the grep family, but it is much more general (and usually faster). The enhancements over other greps include the ability to search for approximate patterns. Article 27.8.

GNU gnroff, Version 1.10

  gnroff is the GNU version of the nroff text formatter. gnroff is part of the groff package. Article 43.17.

grabchars

  grabchars gets one or more keystrokes from the user without requiring them to press RETURN. It was written to make all types of shell scripts more interactive. Article 45.32.

GNU grep, Version 2.0

  GNU egrep (also linked to grep) is about twice as fast as stock UNIX egrep. Article 27.9.

GNU groff, Version 1.10

  groff is the GNU version of the troff text formatter. Included are implementations of troff, pic, eqn, tbl, refer, the man macros and the ms macros, and drivers for PostScript, TeX dvi format, and typewriter-like devices. Also included is a modified version of the Berkeley me macros, and an enhanced version of the X11 (1.31) xditview. Article 43.16.

GNU gzip, Version 1.2.4

  GNU gzip allows compression of files. In addition to the gzip program itself, the package includes gunzip and gzcat. Article 24.7.

head *

  The head shell script simulates the behavior of the head command distributed with many versions of UNIX. It is meant for systems that do not have the head program already installed. Article 25.20.

hey *

  hey is a shell script for people who use systems other than UNIX-and type non-UNIX commands on a UNIX system. It prints a snide remark to remind you of your mistake, then runs the UNIX command you intended to use. Article 16.15.

hgrep, Version OctR88

  hgrep is a trivial, but cute, front-end for grep. It takes the results of the grep and highlights the word that was searched for. Article 27.20.

index, Version 1.0

  index allows you to maintain multiple databases of textual information, each with a different format. With each database, index allows you to add entries, delete entries, edit existing entries, search for entries using full regular expressions, and run all or part of the database through a user-configured filter. Articles 48.11 and 48.12.

ipl, Version 1.0

  ipl is a two-dimensional graphic production system. It produces scatter plots, line plots, bar graphs, range displays, pie graphs, US/Canada maps, schedule charts, boxes, arrows, text, etc. ipl produces PostScript output, based on a user-supplied control file. It also includes a table beautifier that is useful for taking plain text tables, spreadsheet output, etc. and setting them in a nice font. Article 49.9.

ispell, Version 3.1.20

  ispell is a fast screen-oriented spelling checker that shows your errors in the context of the original file, and suggests possible corrections when it can figure them out. Compared to UNIX spell, it is faster and much easier to use. ispell can also handle languages other than English. Article 29.2.

jot

  jot is a simple tool that allows you to print sequential or random data. It can be very useful for constructing loops in shell scripts. Article 45.11.

lensort *

  lensort sorts lines from shortest to longest. Article 36.8.

less, Version 3.21

  less is an extremely flexible pager and is preferred by many to pg or more. less has all of the functionality of more, in addition to backwards scrolling, bookmarks, searching (forward and backward, single, and multi-file), and many other useful features. Article 25.4.

lf *

  lf is actually five commands linked to the same script. Each command results in calling the ls command with a different set of command-line options. In addition to lf, there is also ll, lg, lm, and lr. Article 16.7.

lndir

  lndir is a safe way to duplicate a directory structure elsewhere on the filesystem. It's necessary because a cd into a straight symbolic link actually changes to the directory pointed to by the link, which can be confusing or even dangerous if the link is in a sensitive area of the filesystem. lndir recursively re-creates a directory structure, making symbolic links to all the files in the directory. Article 18.7.

logerrs, Version 1.0 *

  The logerrs script sends errors to a log file as well as to standard error. Article 13.16.

longlines *

  The longlines file contains several lines with 200 columns of text. You can use this file to test whether line wrapping is working correctly, or to adjust windows to a particular size, with:

  >     cat longlines

  Article 42.6.

look

  look is a fairly fast, fairly portable version of look. Article 27.18.

lookfor *

  The lookfor script finds all files in the given directory tree that contain the given string(s). Article 17.21.

ls_today *

  ls_today is a shell script to print the names of files that have been created or edited today. Article 16.18.

make_print *

  make_print is an example Makefile for printing a series of files that have changed. It is meant to be renamed makefile or Makefile and run with make. Article 21.9.

manindex *

  manindex simulates the behavior of the apropos command found on many systems. It generates an index that you can later search using the following alias:

  >     alias apropos "grep -i /!$ indexfile"

  Article 50.3.

motd.diff *

  motd.diff is a shell script to be called from your .login file. It only displays lines in the message-of-the-day that have changed since the previous login. Article 2.14.

namesort *

  The namesort program sorts a list of names by the last name. Article 36.9.

netpbm, Version 1mar94

  netpbm is the latest version of pbmplus, the Extended Portable Bitmap Toolkit. netpbm converts various image formats to and from portable formats, and therefore to and from one another. In addition to the converters, the package includes some simple tools for manipulating the portable formats. Article 43.25.

nextday *

  The nextday shell script returns the name of the next day of the week, to supply to the at command. It can also be linked to the name nextweekday, in which case the next weekday is returned (for example, on Friday nextweekday will return `Monday`). Article 40.10.

no_run *

  The no_run file contains an example of a shell script that you can enter into your private $HOME/bin directory and link to the names of programs that you might not want to run on some systems. It's meant for use on a network where you have the same home directory on several machines of different architectures. After editing the script, you can link it to the names of the commands that are run differently (or not at all) on some systems. Of course, the directory that you install and link the scripts in (such as $HOME/bin) must be in your path before any system-wide executables. Article 8.8.

nom *

  nom ("no match") supplies the names of the files in the current directory that don't match the given shell wildcards. For example, to edit all files in the current directory that don't end in .o, try:

  >     vi `nom *.o`

  Article 15.9.

offset *

  The offset shell script indents text for printing or other uses. Article 35.7.

oldlinks *

  oldlinks is a shell script that prints the names of "stale" symbolic links. Article 16.28.

opttest *

  opttest is a shell script for parsing getopt output. It's meant to demonstrate getopt's behavior. Article 44.18.

paircheck *

  paircheck is an example script for making sure that strings in a file have matching counterparts. paircheck checks that each `.TS` in a given troff file has a corresponding `.TE`; but it's easy to modify to check other kinds of pairs. Article 29.9.

patch, Version 2.1

  patch is Larry Wall's program for distributing source patches to files. By using diff files (generally "context" diffs), patch can intelligently apply patches to a file even if modifications have been made to the source in the meantime. patch is used extensively to communicate source changes throughout the world. Article 33.9.

pcal, Version 4.3

  pcal generates PostScript to produce landscape or portrait calendars for any month and year. By default, pcal simply prints an empty calendar. Its real power is in its ability to place "events" in appropriate days on the calendar, thus allowing the user to create personalized calendars. Article 48.9.

perl, Version 5

  perl (Practical Extraction and Report Language) is an interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It has exceptionally powerful string, file, and system routines to quickly create almost any utility. An added debugger makes perl an attractive alternative to awk or gawk. perl 5 is a new and improved version of perl 4. Article 37.5 tells some of what's new.

phone *

  phone is a shell script that displays lines in a file called phone, matching the given string to standard output. It is also linked to the name address, in which case it returns matching lines in a file named address to stdout. Article 48.2.

pipegrep *

  pipegrep searches through the output of a series of commands, printing the command that produced each line of output. Article 27.13.

pstext

  pstext is a utility for converting text files to PostScript files - usually for a PostScript printer. It includes options for printing "landscape" mode, for specifying a font, and for specifying a point size. Article 43.22.

psutils, Version 1.17

  psutils is a collection of utilities for manipulating PostScript documents: rearranging pages, printing only some pages, and so on. Articles 43.23 and 43.24.

pushin *

  pushin is a sed script that removes any extra white space characters in a file and sends the result to standard output. Article 25.13.

qcsh *

  The qcsh file has a shell function that lets you use C shell features such as the curly brace (`{}`) operators (9.5) from either the Bourne or Korn shell. Article 15.3.

qsubst

  qsubst is designed for substituting strings in (large) files. It accepts a list of filenames and two strings. For each of the files, qsubst modifies it in-place to replace string1 with string2 wherever the user approves the change. Article 33.10.

qterm

  qterm is a program that queries terminals to find out what kind of terminal is responding. It is useful to "automagically" define your terminal type. It prints the name of the terminal (such as "vt100") to standard output. (This name is hopefully compatible with a termcap/terminfo name on your system.) Article 5.5.

rcs, Version 5.7.0

  rcs (Revision Control System) is a set of commands for managing multiple revisions of files. rcs automates the storing, retrieval, logging, identification, and merging of revisions. rcs is useful for text that is revised frequently; for example programs, documentation, graphics, papers, and form letters. Article 20.14.

rcsegrep.fast *

  rcsegrep.fast is a shell script (written mostly in nawk) that searches the most recent revision of one or more RCS files for a given string. It's fast because it reads the RCS file directly. Only recommended when you have a lot of files to search; use rcsgrep otherwise. Article 27.10.

rcsgrep *

  rcsgrep is a shell script that searches revisions of RCS files for a given string. Can also be called through links named rcsegrep and rcsfgrep. Article 27.10.

rcsrevs *

  rcsrevs is a shell script that lists all the revision numbers archived in an RCS file. Article 20.15.

recomment *

  The recomment shell script runs fmt (30.37) on files with lines that are commented out, with wrapped lines recommented. Article 35.4.

redo *

  redo is a utility that allows you to browse through, edit, and execute commands on your C shell history list. It is a C shell script that is sourced in using an alias. This alias appears in the csh_init file. Article 11.14.

relink *

  relink is a perl script for relinking multiple files, similar to the rename script. Article 18.14.

ren

  ren is a program that can rename many files according to search and replacement patterns, ala VMS (but better). ren checks for replacement name collisions and handles rename chains gracefully. Article 18.11.

rename *

  rename is a perl script for renaming multiple files. Article 18.10.

rot

  rot rotates a file, so that lines become columns, and vice versa. Without any options, the file will be rotated clockwise. Article 35.23.

runsed *

  The runsed shell script runs the sed commands in a file called sedscr on the specified files, overwriting the original files. Article 34.3.

runtime *

  runtime repeatedly executes time on a given command and then reports the average time taken over those iterations. The actual output of the command is discarded. Article 39.4.

sc, Version 6.21

  sc is a spreadsheet calculator based on rectangular tables, much like a financial spreadsheet. Article 49.8.

screen, Version 3.7.2

  screen is a window manager that allows you to handle several independent screens (UNIX ptys (41.8)) on a single physical terminal. Articles 12.9 and 3.7.

screensize *

  The screensize file contains 69 lines of text, starting at 69 and ending at 1. You can use this file to determine how many rows are displaying on your screen, with:

  >     cat screensize

  Article 42.6.

script.tidy *

  script.tidy uses sed to clean up files generated with the script program. Article 51.6.

search.el *

  The search.el file contains a set of Emacs search commands. To use these commands, use the load-file command in your $HOME/.emacs file to point to this file. Article 32.8.

sedman *

  sedman is a sed script for formatting simple manual pages. Article 43.19.

sh_init *

  The sh_init file is a collection of Bourne-type shell function and alias definitions that are shown throughout the book. Most of these are also available as C shell functions in the csh_init file.

  In its distribution form, each set of commands is commented out and needs to be explicitly uncommented before you can use them; this is because many of the definitions override or conflict with one another. You can copy or source (44.23) the file into your shell setup file (2.2), and then enable the definitions that you want. Articles 2.15, 7.5, 7.6, 7.8, 7.11, 7.12, 14.9, 14.14, 15.5, 16.26, 16.27, 17.4, 17.23, 22.2, 22.9, 25.17, 29.8, 30.20, 43.8, and 50.8.

sh_logout *

  The sh_logout file contains a set of commands for removing temporary files. Bourne-type shell users can input these commands into their logout file (such as .bash_logout). Article 21.3.

GNU Shell Archive Utilities (sharutils), Version 4.2

  The GNU sharutils package is a set of tools to create and unpack shell archives. sharutils makes it easier to ship sources around by email. The package includes shar, unshar, uuencode, uudecode, mail-files, mailshar, and remsync.

GNU Shell Utilities (shellutils), Version 1.11

  GNU Shell Utilities is a package of small shell programming utilities. These utilities are generally more robust and have more features than the system-supplied alternatives. Programs included are: basename, date, dirname, env, expr, false, groups, id, nice, nohup, pathchk, printenv, printf, sleep, stty, tee, test, true, tty, uname, who, whoami, and yes. Most of these programs are covered throughout the book. Note that because nice, stty, and uname require facilities that are not available on all systems, they are only installed when appropriate.

showmatch *

  The showmatch shell script shows the strings in a given file that match the specified regular expression. Article 26.6.

sl *

  sl is a Perl script for showing the actual filenames for symbolic links. Article 18.8.

sls

  sls is a program designed to overcome the limitations of the standard UNIX ls program, providing a more consistent interface to file inode information. It is particularly designed for use by shell scripts to make obtaining information about files easier. It uses printf-style format strings to control the sorting and output of file information. Article 16.29.

smiley

  smiley is a "smiley server." It can explain any smiley it knows, or print one it knows at random. Article 51.12.

squoze *

  squoze is a utility for shrinking a huge directory. Article 24.16.

stat

  stat prints out the contents of an inode (as it appears to the stat(2) system call) in a human-readable format. Article 21.13.

stree *

  stree is a shell script that prints a simple directory tree. Article 16.19.

stripper *

  stripper is a simple shell script for stripping any binary files in $HOME/bin that aren't already stripped. Article 24.13.

su *

  The su shell script is a front-end to the system-wide su, for versions of su that don't set your home directory or username properly in the new shell. Article 22.22.

GNU tar, Version 1.11.2

  GNU tar is upwards compatible with the standard tar supplied with your operating system. It adds many new features including remote devices, compression, multi-volume archives, the ability to extract to standard output, the ability to extract using wildcards, interactive confirmation, the ability to extract only "missing" files, and the ability to store only files newer than a given date. Article 19.6.

tcap

  tcap is a utility that gives shell scripts access to termcap escape sequences, similar to tput. It is generally distributed under the name tc. We have renamed it here to avoid confusion with the standard tc command that is distributed under many operating systems. Article 41.10.

Tcl/tk, Versions 4.2p2/7.6p2

  Tcl is a widely used shell-like language. It's on the disc mostly because of expect, which is integrated on top of Tcl. But Tcl is also very useful on its own. tk is a scripting language that lets you integrate a graphical user interface on top of your application. Article 9.26.

tcsh

  tcsh is a version of the Berkeley C shell, with the addition of a command line editor; command and filename completion, listing, etc.; and several small additions to the shell itself. Article 8.3.

termtest *

  termtest is a shell script that quickly sends repeated characters to the screen. You can use it to test your terminal connection, by scanning for line noise or dropped characters. Article 42.7.

GNU Text Utilities (textutils), Version 1.20

  The GNU text utilities are a collection of utilities for viewing, manipulating, rendering, and combining text files. Programs included are: csplit, cut, paste, expand, and unexpand.

tgrep

  tgrep only searches through files that contain text. It is useful for searching through directories that contain both binary and text files. Article 27.13.

tm, Version 1.1 *

  The tm script gives the current time in countries all over the world. Article 6.7.

tpipe

  tpipe is a simple utility program that can be used to split a UNIX pipeline into two pipelines. Like tee, tpipe transcribes its standard input to its standard output. But where tee writes an additional copy of its input to a file, tpipe writes the additional copy to the input of another pipeline that is specified as the argument to tpipe. Article 13.11.

tputinit

  tputinit is a shell script for simulating the terminal initialization commands generated by tput init. It can be used on systems with older versions of tput that don't support the init keyword. Article 5.12.

triplespace *

  triplespace is a sed script that triple-spaces text and sends the result to standard output. Article 25.12.

twin

  twin is used to compare two similar files. They will be displayed side-by-side with any mismatched lines shown in reverse video. Article 28.5.

GNU unexpand, Version 1.20

  GNU unexpand converts space characters into TABs at 8-column tabstops. unexpand is part of the textutils package. Article 24.6.

vgrep *

  The vgrep shell script supplies a list of filenames that don't contain the given string. It's sort of a grep -v for complete files instead of for individual lines. Article 15.8.

vis

  vis is a program that repeatedly executes a specified command and refreshes the display of its output on the screen. Article 51.7.

vtree, Version 1.2

  vtree gives a visual directory tree, designed to show the layout of a directory tree or filesystem. It has options to show the amount of storage being taken up in each directory, count the number of inodes, etc. Article 16.20.

watchq *

  watchq is a daemon script (1.14) that monitors the queues for several printers and sends messages to users when errors occur. Article 38.11.

whereiz *

  whereiz lists all executables in your path that match the given name. Article 4.10.

which

  which is an improved version of the standard which utility. This version returns the full expansion of the command argument, be it either an alias, a shell function, or the path to an executable file. Article 50.8.

wordfreq *

  wordfreq reports the number of times each word appears in a given file. Article 29.7.

GNU xargs, Version 4.1

  The GNU version of the xargs utility is used to execute a command with many arguments. Its -0 option works with GNU find to avoid problems in the standard xargs. xargs is part of the GNU find package. Articles 9.21 and 9.22.

xgrep *

  Most grep-like programs search for lines that match a regular expression, then outputs the entire lines. xgrep is a sed script that retrieves only the matching text - not (necessarily) a whole line. Article 43.21.

xtail

  xtail watches the growth of files. It is similar to tail -f, but can be used to watch many files at once. Article 25.18.

zap *

  zap interactively allows you to kill processes by running ps and then querying you about killing each process reported by ps. Comes with the script pick, which lets you choose from its command-line arguments. Article 38.13.

zloop *

  zloop is a shell script for running a command on a set of compressed files. Article 24.10.

zmore *

  The zmore shell script runs more on compressed files. It is also linked to the names zpg and zless. Other links named vmore, vpg, and vless show "unprintable" characters in a way you can see them without affecting your screen. Finally, links named rcsmore, rcspg and rcsless page through the latest revision of an RCS file - without creating a working file. Article 25.5.

zvi *

  zvi is a shell script for running the vi editor on compressed files. It is also linked to the programs zex and zed for running ex or ed on compressed files, respectively. Article 24.11.

- LM, JP

52.3 Shrink-Wrapped Software for UNIX |  | 52.5 Using the Power Tools CD-ROM